package 算法语言基础.Day12_7;

import java.awt.image.Kernel;
import java.util.Scanner;

public class Test17 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.print("x=");
        double x = sc.nextDouble();
        System.out.println(f(x));
        ;
    }

    static double f(double x) {
        return 1 * Math.pow(Math.E, (-1 * (x - 2) * (x - 2)) / (2 * 3 * 3));
    }
}

//    //一维高斯
//    public static Kernel get(int r, boolean h){
//        if (r<1){
//            throw new IllegalArgumentException("需满足r>=1");
//        }
//        int size = r * 2 + 1;
//        float[] data = new float[size];
//
//        float sigma = r * 3.0f;
//        float twoSigmaSquare = 2.0f * sigma * sigma;
//        float sigmaRoot = (float) Math.sqrt(twoSigmaSquare * Math.PI);
//        float sum = 0.0f;
//
//        for (int i= -r; i<=r ; i++){
//            float distance = i*i;
//            int index = i + r;
//            data[index] = (float)Math.exp(-distance / twoSigmaSquare) / sigmaRoot;
//            sum += data[index];
//        }
//        for (int i = 0;i<data.length;i++){
//            data[i] /= sum;
//        }
//        return h? new Kernel(size,1,data): new Kernel(1,size,data);
//    }
//
//    //二维高斯函数
//    public static Kernel get2D(int r){
//        if (r<1){
//            throw new IllegalArgumentException("需满足r>=1");
//        }
//        float sum = 0.0f;
//        int width = r * 2+1;
//        int size = (int) Math.pow((float)(width),2);
//        float sigma = r / 3.0f;
//        float twoSigmaSquare = 2.0f * sigma * sigma;
//        float sigmaRoot = (float) Math.PI * twoSigmaSquare;
//        float[] data = new float[size];
//        int index = 0;
//        float x,y;
//        for (int i=-r; i<=r;i++){
//            for (int j=-r;j<=r;j++){
//                x=i*i;
//                y=j*j;
//                data[index] = (float) Math.exp((-(x+y)/twoSigmaSquare)/sigmaRoot);
//                sum +=data[index];
//                index++;
//            }
//        }
//        for (int k=0;k<size;k++){
//            data[k] = data[k]/sum;
//        }
//        return new Kernel(width,width,data);
//    }

